package com.mlxg.untils;


import cn.hutool.crypto.digest.BCrypt;

/**
 * @author cy zhang
 * @version 1.0
 * @date 2025/4/8 10:00
 * 密码加密的工具类
 */
public class BCryptUtils {
    /**
     * 加密方法
     * @param pd 铭文密码
     * @return 加密后的密码
     */
    public static String encryptionPassword(String pd){
        // gensalt方法提供了可选参数 (log_rounds) 来定义加盐多少，也决定了加密的复杂度:
//        String strong_salt = BCrypt.gensalt(10);
//        String stronger_salt = BCrypt.gensalt(12);
        String password = BCrypt.hashpw(pd, BCrypt.gensalt(12));
        return password;
    }

    /**
     * 解密
     * @param pd 铭文密码
     * @param encryptPd 加密密码
     * @return
     */
    public static boolean decryptPassword(String pd,String encryptPd){
// 使用checkpw方法检查被加密的字符串是否与原始字符串匹配：
      return BCrypt.checkpw(pd, encryptPd);
    }

    public static void main(String[] args) {
        String s = encryptionPassword("123456");
        System.out.println("s = " + s);
        boolean b = decryptPassword("123456","$2a$12$XpLZzuQRuAvHQtOgaboUiOnMvocELmI8nwtAQfwIGOv6s34QstoGu");
        System.out.println("b = " + b);
//        StpUtil
    }
}

